1. Field of the Invention
The present invention relates generally to computer modeling, and more particularly to parametric modeling systems that support replication.
2. Related Art
In computer aided design (CAD) environments, a model or design, e.g. an engineering or architectural design, may be created as geometric ‘elements’ (e.g. lines, arcs, circles, curves, surfaces, solids, text, etc.) that may be recorded (and made persistent) in a design file (e.g. a .dgn file, .dwg file, etc.). The CAD environment may also provide a set of interactive commands to place and edit these elements. The result of using these commands is persistent, but the commands themselves are ‘transient.’ Knowledge of how an elements has been created or edited is not recorded in the design file.
Generative components (GC) may provide an alternative structure and technique for designing CAD elements, and using the GC elements in models or designs. GC may provide a set of features, for example, lines, curves, arcs, user-defined features etc., where each feature may have one or more “update” functions that define how the feature is generated and updated when the design is modified. GC features may be dependent on other GC features or existing elements.
Each type of GC feature may have an associated set of ‘update’ methods corresponding to different ways to define a feature, and various placement and modification tools and commands that may be provided with the modeling environment. A GC based system may remember how each GC feature is created and/or updated. Remembering the creation method of a GC feature may allow the GC system to re-generate or revise the feature appropriately as changes are propagated through the model.
For example, a GC circle feature may have an update function that creates a circle from a center point and a radius length. The center point of the circle may itself be a GC point, for example, the point at the intersection of two lines. If the point that defines the center of the circle moves, then the GC circle may update the circle accordingly, in this case, by moving the circle to the center's new position. Currently, every update method must be explicitly specified by the user.
In a parametric modeling system, replication may be considered the ability of the system to automatically create multiple copies of a prototype model, merely by changing one or more of the model's input properties from a single value to, for example, a list of values. A list of values could be, for example, a literal list, or a single value that is, itself, replicated.
For example, when an input property that expects a value of type T is given a value that is a list of type T (which could be a single entity of type T that is replicated), the recipient entity becomes replicated, as well. Within the recipient entity, each of its internal, component entities may be created from the corresponding component entity in the input value(s). Thus, a problem may occur when a list of values is replicated. What is needed is a way to accurately replicate a list of values.